home *** CD-ROM | disk | FTP | other *** search
/ Revista do CD-ROM 101 / CD-ROM 101.iso / compl / maya5ple / Install_MayaPLE5_English.exe / Maya / Data1.cab / AEnonExtendedLightShapeDepth < prev    next >
Encoding:
Text File  |  2003-07-17  |  15.6 KB  |  458 lines

  1. // Copyright (C) 1997-2002 Alias|Wavefront,
  2. // a division of Silicon Graphics Limited.
  3. //
  4. // The information in this file is provided for the exclusive use of the
  5. // licensees of Alias|Wavefront.  Such users have the right to use, modify,
  6. // and incorporate this code into other products for purposes authorized
  7. // by the Alias|Wavefront license agreement, without fee.
  8. //
  9. // ALIAS|WAVEFRONT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  10. // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  11. // EVENT SHALL ALIAS|WAVEFRONT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  12. // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  13. // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  14. // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  15. // PERFORMANCE OF THIS SOFTWARE.
  16. //
  17. //
  18. //  Alias|Wavefront Script File
  19. //
  20. //  Creation Date:    May 9, 1997
  21. //  Author:        sw
  22. //
  23. //  Procedure Name:
  24. //    AEnonExtendedLightShapeDepthMapAttr
  25. //
  26. //  Description:
  27. //    Creates attribute editor controls in split files
  28. //    for the nonExtendedLightShapeNode
  29. //
  30. //  Input Value:
  31. //    nodeName
  32. //
  33. //  Output Value:
  34. //    None
  35. //
  36. //
  37.  
  38.  
  39. //  Procedure Name:
  40. //    showReuseDmap
  41. //
  42. global proc showReuseDmap( string $readDmapAttr, string $reuseDmapAttr )
  43. {
  44.  
  45.     setUITemplate -pushTemplate attributeEditorTemplate;
  46.  
  47.     optionMenuGrp -label "Disk Based Dmaps" -cw 2 230 saveToDiskMenu;
  48.  
  49.     menuItem -l "Off" "doNotDmap";
  50.     menuItem -l "Overwrite Existing Dmap(s)" "writeDmap";
  51.     menuItem -l "Reuse Existing Dmap(s)" "reuseDmap";
  52.  
  53.     showReuseDmapChange( $readDmapAttr, $reuseDmapAttr );
  54.  
  55.     setUITemplate -popTemplate;
  56. }
  57.  
  58.  
  59. global proc updateReuseDmapMenu( string $nodeName, string $layout )
  60. //
  61. // this is called by a scriptJob whenever the attributes change value
  62. {
  63.     string $value1 = `getAttr ($nodeName+".reuseDmap")`;
  64.     string $value2 = `getAttr ($nodeName+".writeDmap")`;
  65.     
  66.     setParent $layout;
  67.     
  68.     if ( $value1 == 1 ) {
  69.         optionMenuGrp -e -select 3 saveToDiskMenu;
  70.     }
  71.     else if ( $value2 == 1 ) {
  72.         optionMenuGrp -e -select 2 saveToDiskMenu;
  73.     }
  74.     else {
  75.         optionMenuGrp -e -select 1 saveToDiskMenu;
  76.     }
  77. }
  78.  
  79.  
  80. global proc updateFromDmapMenu( string $nodeName, string $layout )
  81. //
  82. // This is called to insure the display of attributes is correct
  83. // whenever dimming events might occur.
  84. {
  85.     setParent $layout;
  86.     int $val = `optionMenuGrp -q -sl saveToDiskMenu`;
  87.     int $value = `getAttr ($nodeName+".useDepthMapShadows")`;
  88.     
  89.     int $set;
  90.     if ($value) {
  91.         $set = false;
  92.     } else {
  93.         $set = true;
  94.     }
  95.     if ( $val == 3 ){
  96.         editorTemplate -dimControl $nodeName dmapUseMacro $set;
  97.         editorTemplate -dimControl $nodeName dmapName $set;
  98.         editorTemplate -dimControl $nodeName dmapSceneName $set;
  99.         editorTemplate -dimControl $nodeName dmapLightName $set;
  100.         editorTemplate -dimControl $nodeName dmapFrameExt $set;
  101.     } else if ( $val == 2){
  102.         editorTemplate -dimControl $nodeName dmapUseMacro true;
  103.         editorTemplate -dimControl $nodeName dmapName $set;
  104.         editorTemplate -dimControl $nodeName dmapSceneName $set;
  105.         editorTemplate -dimControl $nodeName dmapLightName $set;
  106.         editorTemplate -dimControl $nodeName dmapFrameExt $set;
  107.     } else {
  108.         editorTemplate -dimControl $nodeName dmapUseMacro true;
  109.         editorTemplate -dimControl $nodeName dmapName true;
  110.         editorTemplate -dimControl $nodeName dmapSceneName true;
  111.         editorTemplate -dimControl $nodeName dmapLightName true;
  112.         editorTemplate -dimControl $nodeName dmapFrameExt true;
  113.     }
  114. }
  115.  
  116. global proc setDmapAttrs( string $nodeName, string $layout )
  117. // This is called whenever the user changes the menu
  118. {
  119.     int $val = `optionMenuGrp -q -sl saveToDiskMenu`;
  120.     if ( $val == 3 ){
  121.         setAttr ($nodeName+".reuseDmap") 1;
  122.         setAttr ($nodeName+".writeDmap") 0;
  123.     } else if ( $val == 2){
  124.         setAttr ($nodeName+".reuseDmap") 0;
  125.         setAttr ($nodeName+".writeDmap") 1;
  126.     } else {
  127.         setAttr ($nodeName+".reuseDmap") 0;
  128.         setAttr ($nodeName+".writeDmap") 0;
  129.     }
  130.     updateFromDmapMenu( $nodeName, $layout );
  131. }
  132.  
  133. global proc showReuseDmapChange( string $readDmapAttr, string $reuseDmapAttr )
  134. {
  135.     string $buffer[];
  136.     tokenize($readDmapAttr,".",$buffer);
  137.     if ( size($buffer)==0 ) return;
  138.     
  139.     string $layout = `setParent -q`;
  140.     
  141.     // create the change command for the menu
  142.     //
  143.     optionMenuGrp -e -cc ("setDmapAttrs " + $buffer[0] + " " + $layout ) saveToDiskMenu;
  144.  
  145.     // create the script job to update the menu if the attribute is changed elsewhere.
  146.     // Each one is parented to a different control so that they can be replace properly
  147.     // when needed.
  148.     //
  149.     scriptJob -rp -p saveToDiskMenu
  150.         -ac $readDmapAttr ("updateReuseDmapMenu "+$buffer[0]+" "+ $layout );
  151.  
  152.     scriptJob -rp -p $layout
  153.         -ac $reuseDmapAttr ("updateReuseDmapMenu "+$buffer[0]+" "+ $layout );
  154.  
  155.     updateFromDmapMenu($buffer[0], $layout);
  156.     updateReuseDmapMenu($buffer[0], $layout);
  157.  
  158. }
  159.  
  160. //  Procedure Name:
  161. //    checkUseDepthMapShadows
  162. //
  163.  
  164. global proc checkUseDepthMapShadows ( string $nodeName )
  165. {
  166.     string $nodeAttr = $nodeName + ".useDepthMapShadows";
  167.     int $value = `getAttr $nodeAttr`;
  168.     string $layout = `setParent -q`;
  169.     
  170.     if ( $value == 1 ) {
  171.         editorTemplate -dimControl $nodeName "dmapFilterSize" false;
  172.         editorTemplate -dimControl $nodeName "dmapResolution" false;
  173.         editorTemplate -dimControl $nodeName "dmapBias" false;
  174.         editorTemplate -dimControl $nodeName "useDmapAutoFocus" false;
  175.         if ( `getAttr ($nodeName + ".useDmapAutoFocus")` == 0 ) {
  176.             editorTemplate -dimControl $nodeName "dmapFocus" false;
  177.             editorTemplate -dimControl $nodeName "dmapWidthFocus" false;
  178.             editorTemplate -dimControl $nodeName "useLightPosition" false;
  179.         }
  180.         if ( `attrFieldSliderGrp -exists volumeShadowSamplesField` ) {
  181.             attrFieldSliderGrp -e -en true volumeShadowSamplesField;
  182.         }
  183.         editorTemplate -dimControl $nodeName "fogShadowIntensity" false;
  184.         editorTemplate -dimControl $nodeName "useMidDistDmap" false;
  185.         editorTemplate -dimControl $nodeName "useX+Dmap" false;
  186.         editorTemplate -dimControl $nodeName "useX-Dmap" false;
  187.         editorTemplate -dimControl $nodeName "useY+Dmap" false;
  188.         editorTemplate -dimControl $nodeName "useY-Dmap" false;
  189.         editorTemplate -dimControl $nodeName "useZ+Dmap" false;
  190.         editorTemplate -dimControl $nodeName "useZ-Dmap" false;
  191.         editorTemplate -dimControl $nodeName "useOnlySingleDmap" false;
  192.  
  193.         if (`optionMenuGrp -exists saveToDiskMenu`) {
  194.             editorTemplate -dimControl $nodeName writeDmap false;
  195.             editorTemplate -dimControl $nodeName reuseDmap false;
  196.             updateFromDmapMenu($nodeName, $layout);
  197.             updateReuseDmapMenu($nodeName, $layout);
  198.         }
  199.     } else {
  200.         editorTemplate -dimControl $nodeName "dmapFilterSize" true;
  201.         editorTemplate -dimControl $nodeName "dmapResolution" true;
  202.         editorTemplate -dimControl $nodeName "dmapBias" true;
  203.         editorTemplate -dimControl $nodeName "useDmapAutoFocus" true;
  204.         editorTemplate -dimControl $nodeName "dmapFocus" true;
  205.         editorTemplate -dimControl $nodeName "dmapWidthFocus" true;
  206.         editorTemplate -dimControl $nodeName "useLightPosition" true;
  207.         if ( `attrFieldSliderGrp -exists volumeShadowSamplesField` ) {
  208.             attrFieldSliderGrp -e -en false volumeShadowSamplesField;
  209.         }
  210.         editorTemplate -dimControl $nodeName "fogShadowIntensity" true;
  211.         editorTemplate -dimControl $nodeName "useMidDistDmap" true;
  212.         editorTemplate -dimControl $nodeName "useX+Dmap" true;
  213.         editorTemplate -dimControl $nodeName "useX-Dmap" true;
  214.         editorTemplate -dimControl $nodeName "useY+Dmap" true;
  215.         editorTemplate -dimControl $nodeName "useY-Dmap" true;
  216.         editorTemplate -dimControl $nodeName "useZ+Dmap" true;
  217.         editorTemplate -dimControl $nodeName "useZ-Dmap" true;
  218.         editorTemplate -dimControl $nodeName "useOnlySingleDmap" true;
  219.         editorTemplate -dimControl $nodeName dmapName true;
  220.         editorTemplate -dimControl $nodeName dmapSceneName true;
  221.         editorTemplate -dimControl $nodeName dmapLightName true;
  222.         editorTemplate -dimControl $nodeName dmapFrameExt true;
  223.  
  224.         if (`optionMenuGrp -exists saveToDiskMenu`) {
  225.             editorTemplate -dimControl $nodeName writeDmap true;
  226.             editorTemplate -dimControl $nodeName reuseDmap true;
  227.             updateFromDmapMenu($nodeName, $layout);
  228.             updateReuseDmapMenu($nodeName, $layout);
  229.         }
  230.     }
  231.  
  232.     checkuseDepthMapreadDepthMap $nodeName;
  233.     checkNonExtendedLightShapeNodeUseOnlySingleDepthMap $nodeName;
  234. }
  235.  
  236.  
  237.  
  238. //
  239. //  Procedure Name:
  240. //    checkuseDepthMapreadDepthMap
  241. //
  242.  
  243. global proc checkuseDepthMapreadDepthMap ( string $nodeName )
  244. {    
  245.     string $nodeAttr1 = $nodeName + ".useDepthMapShadows";
  246.     int $value1 = `getAttr $nodeAttr1`;
  247.  
  248.     string $nodeAttr2 = $nodeName + ".reuseDmap";
  249.     int $value2 = `getAttr $nodeAttr2`;
  250.  
  251.     if ( ($value1 == 1) && ($value2 == 1) ) {
  252.         editorTemplate -dimControl $nodeName "dmapUseMacro" false;
  253.     } else {
  254.         editorTemplate -dimControl $nodeName "dmapUseMacro" true;
  255.     }
  256. }
  257.  
  258. global proc checkNonExtendedLightShapeNodeUseDepthMapAutoFocus (string $nodeName)
  259. {
  260.     string $nodeAttr1 = $nodeName + ".useDmapAutoFocus";
  261.     int $value1 = `getAttr $nodeAttr1`;
  262.  
  263.     if ($value1) {
  264.         editorTemplate -dimControl $nodeName "dmapFocus" true;
  265.         editorTemplate -dimControl $nodeName "dmapWidthFocus" true;
  266.         editorTemplate -dimControl $nodeName "useLightPosition" true;
  267.     } else {
  268.         editorTemplate -dimControl $nodeName "dmapFocus" false;
  269.         editorTemplate -dimControl $nodeName "dmapWidthFocus" false;
  270.         editorTemplate -dimControl $nodeName "useLightPosition" false;
  271.     }
  272. }
  273.  
  274. global proc checkNonExtendedLightShapeNodeUseDepthMapAutoClipping (string $nodeName)
  275. {
  276.     string $nodeAttr1 = $nodeName + ".useDmapAutoClipping";
  277.     int $value1 = `getAttr $nodeAttr1`;
  278.  
  279.     if ($value1) {
  280.         editorTemplate -dimControl $nodeName "dmapNearClipPlane" true;
  281.         editorTemplate -dimControl $nodeName "dmapFarClipPlane" true;
  282.     } else {
  283.         editorTemplate -dimControl $nodeName "dmapNearClipPlane" false;
  284.         editorTemplate -dimControl $nodeName "dmapFarClipPlane" false;
  285.     }
  286. }
  287.  
  288. global proc checkNonExtendedLightShapeNodeUseOnlySingleDepthMap (string $nodeName)
  289. {
  290.     if (`attributeQuery -exists -node $nodeName "useOnlySingleDmap"`){
  291.         string $nodeAttr1 = $nodeName + ".useDepthMapShadows";
  292.         int $value1 = `getAttr $nodeAttr1`;
  293.     
  294.         int $value2;
  295.         if (`objectType $nodeName` == "spotLight") {
  296.             string $nodeAttr2 = $nodeName + ".useOnlySingleDmap";
  297.             $value2 = `getAttr $nodeAttr2`;
  298.         } else if (`objectType $nodeName` == "pointLight") {
  299.             $value2 = 0;
  300.         }
  301.  
  302.         if ( ($value1 == 1) && ($value2 == 0) ) {
  303.             editorTemplate -dimControl $nodeName "useX+Dmap" false;
  304.             editorTemplate -dimControl $nodeName "useX-Dmap" false;
  305.             editorTemplate -dimControl $nodeName "useY+Dmap" false;
  306.             editorTemplate -dimControl $nodeName "useY-Dmap" false;
  307.             editorTemplate -dimControl $nodeName "useZ+Dmap" false;
  308.             editorTemplate -dimControl $nodeName "useZ-Dmap" false;
  309.         } else {
  310.             editorTemplate -dimControl $nodeName "useX+Dmap" true;
  311.             editorTemplate -dimControl $nodeName "useX-Dmap" true;
  312.             editorTemplate -dimControl $nodeName "useY+Dmap" true;
  313.             editorTemplate -dimControl $nodeName "useY-Dmap" true;
  314.             editorTemplate -dimControl $nodeName "useZ+Dmap" true;
  315.             editorTemplate -dimControl $nodeName "useZ-Dmap" true;
  316.         }
  317.     }
  318. }
  319.  
  320. global proc AEvolumeShadowSamplesNew( string $attrName )
  321. {
  322.     setUITemplate -pst attributeEditorTemplate;    
  323.      attrFieldSliderGrp -attribute $attrName -l "Fog Shadow Samples"
  324.             volumeShadowSamplesField;
  325.     setUITemplate -ppt;
  326. }
  327.  
  328. global proc AEvolumeShadowSamplesReplace( string $attrName )
  329. {
  330.      attrFieldSliderGrp -e -attribute $attrName -l "Fog Shadow Samples"
  331.             volumeShadowSamplesField;
  332. }
  333.  
  334. //
  335. //  Procedure Name:
  336. //    AEnonExtendedLightShapeDepthMapAttr
  337. //
  338.  
  339. global proc AEnonExtendedLightShapeDepthMapAttr ( string $nodeName )
  340. {
  341.     if ( `objectType $nodeName` == "pointLight"){
  342.         if (`attributeQuery -exists -n $nodeName "useOnlySingleDmap"`)
  343.             setAttr ($nodeName + ".useOnlySingleDmap") 0;
  344.     }
  345.  
  346.     editorTemplate -beginLayout "Depth Map Shadow Attributes" -collapse 0;
  347.         editorTemplate -addControl "useDepthMapShadows" "checkUseDepthMapShadows";
  348.         editorTemplate -addControl "dmapResolution";
  349.         editorTemplate -beginNoOptimize;
  350.         editorTemplate -addControl "useMidDistDmap";
  351.  
  352.         // Focus 
  353.         if (`objectType $nodeName` == "spotLight" ||
  354.             `objectType $nodeName` == "pointLight") {
  355.             editorTemplate -addControl "useDmapAutoFocus"
  356.                     "checkNonExtendedLightShapeNodeUseDepthMapAutoFocus";
  357.             editorTemplate -addControl "dmapFocus";
  358.             editorTemplate -suppress "dmapWidthFocus";
  359.         } else {
  360.             editorTemplate -suppress "useDmapAutoFocus";
  361.             editorTemplate -suppress "dmapFocus";
  362.             editorTemplate -suppress "dmapWidthFocus";
  363.         }
  364.  
  365.         // Width 
  366.  
  367.         if ( `objectType $nodeName` == "directionalLight" ) {
  368.             editorTemplate -addControl "useDmapAutoFocus"
  369.                     "checkNonExtendedLightShapeNodeUseDepthMapAutoFocus";
  370.             editorTemplate -addControl "dmapWidthFocus";
  371.             editorTemplate -addControl "useLightPosition";
  372.             editorTemplate -suppress "dmapFocus";
  373.         } else {
  374.             editorTemplate -suppress "useDmapAutoFocus";
  375.             editorTemplate -suppress "dmapWidthFocus";
  376.             editorTemplate -suppress "dmapFocus";
  377.             editorTemplate -suppress "useLightPosition";
  378.         }
  379.  
  380.         editorTemplate -endNoOptimize;
  381.         editorTemplate -addSeparator;
  382.  
  383.         editorTemplate -addControl "dmapFilterSize";
  384.         editorTemplate -suppress "useDmapAutoBias";
  385.         editorTemplate -addControl "dmapBias";
  386.         editorTemplate -addControl "fogShadowIntensity";
  387.         editorTemplate -callCustom "AEvolumeShadowSamplesNew"
  388.             "AEvolumeShadowSamplesReplace" "volumeShadowSamples";
  389.  
  390.  
  391.         editorTemplate -suppress "useDmapAutoClipping";
  392.         editorTemplate -suppress "dmapNearClipPlane";
  393.         editorTemplate -suppress "dmapFarClipPlane";
  394.  
  395. // IO
  396.  
  397.         editorTemplate -addSeparator;
  398.  
  399.         editorTemplate -callCustom showReuseDmap showReuseDmapChange writeDmap reuseDmap;
  400. //        editorTemplate -beginNoOptimize;
  401. //        editorTemplate -addControl "readDmap" "checkuseDepthMapreadDepthMap";
  402. //        editorTemplate -label "Create New or Reuse Existing Dmap(s)" -addControl "reuseDmap" "checkuseDepthMapreadDepthMap";
  403. //        editorTemplate -label "Update Existing Dmap(s) From Render" -addControl "writeDmap"; 
  404. //        editorTemplate -endNoOptimize;
  405.  
  406.         editorTemplate -addControl "dmapName";
  407.         editorTemplate -beginNoOptimize;
  408.         editorTemplate -addControl "dmapSceneName";
  409.         editorTemplate -addControl "dmapLightName";
  410.         editorTemplate -endNoOptimize;
  411.         editorTemplate -addControl "dmapFrameExt";
  412.         editorTemplate -addControl "dmapUseMacro";
  413.         editorTemplate -suppress "lastWrittenDmapAnimExtName";
  414.  
  415.     if (`objectType $nodeName` == "spotLight" ||
  416.         `objectType $nodeName` == "pointLight") {
  417.         editorTemplate -addSeparator;
  418.     }
  419.  
  420. // OnlySingleDepthMap 
  421.  
  422.     if (`objectType $nodeName` == "spotLight") {
  423.         editorTemplate -addControl "useOnlySingleDmap"
  424.                 "checkNonExtendedLightShapeNodeUseOnlySingleDepthMap";
  425.         editorTemplate -interruptOptimize;
  426.     } else {
  427.         editorTemplate -suppress "useOnlySingleDmap";
  428.     }
  429.  
  430. // SixMaps 
  431.  
  432.     if (`objectType $nodeName` == "spotLight" ||
  433.         `objectType $nodeName` == "pointLight") {
  434.  
  435.         editorTemplate -beginNoOptimize;
  436.         editorTemplate -addControl "useX+Dmap";
  437.         editorTemplate -addControl "useX-Dmap";
  438.         editorTemplate -addControl "useY+Dmap";
  439.         editorTemplate -addControl "useY-Dmap";
  440.         editorTemplate -addControl "useZ+Dmap";
  441.         editorTemplate -addControl "useZ-Dmap";
  442.         editorTemplate -endNoOptimize;
  443.     } else {
  444.         editorTemplate -suppress "useX+Dmap";
  445.         editorTemplate -suppress "useX-Dmap";
  446.         editorTemplate -suppress "useY+Dmap";
  447.         editorTemplate -suppress "useY-Dmap";
  448.         editorTemplate -suppress "useZ+Dmap";
  449.         editorTemplate -suppress "useZ-Dmap";
  450.     }
  451.  
  452.     editorTemplate -suppress "volumeShadowSamples";
  453.     editorTemplate -suppress "reuseDmap";
  454.     editorTemplate -suppress "writeDmap";
  455.  
  456.     editorTemplate -endLayout;
  457. }
  458.